A computer system, for example, a server, a work station, a personal computer, a laptop, etc., may be divided into multiple partitions to efficiently utilize its use. For example, the computer system may be divided into multiple hardware partitions where each hardware partition runs its own application and operating system (OS) instance. This may increase the utilization of the computer system. To form a hardware partition, one or more central processing units (CPUs) or processors, and input/output (I/O) interfaces as well as a memory may be dedicated. As each hardware partition may be isolated from other hardware partitions, working partitions may be safeguarded from the effect of faulty ones.
By the same token, a virtual partition may be a software partition of the computer system where each virtual partition contains an independent instance of an OS. Typically, the virtual partition may be created using resources from one or more cells, where a cell or a cellular platform may be a basic building block of each hardware partition with at least one CPU and an I/O interface as well as a memory. Like the hardware partition, the virtual partition runs its own application and OS instance while isolating its operation from other virtual partitions. However, unlike the hardware partition, resources, such as CPUs, may be dynamically added or deleted from the virtual partition, thus making the virtual partition more flexible than the hardware partition. The dynamic addition or deletion of CPUs may be referred to as CPU migration.
Typically, in a non-uniform memory architecture (NUMA), memory access time may depend on the location of a CPU relative to a memory being accessed by the CPU. Thus, for a faster memory access in the virtual partition, CPUs local to a dedicated memory for the virtual partition may need to be assigned at the time of creation of the virtual partition or at run time. However, the CPU assignment for a faster memory access time may not be possible in a count-based CPU assignment, where a specified number of CPUs may be randomly assigned to the virtual partition from available CPUs using a resource manager. Although one or more CPUs that are proximal to the memory may be added to or deleted from the virtual partition by directly specifying their identifiers, the assigned CPUs may not be retained across reboots of the virtual partition.
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.